/*
 * @Description: 租户配置管理
 * @Author: DSY
 * @Date: 2022-12-30 16:00:28
 * @LastEditors: DHL
 * @LastEditTime: 2024-01-29 15:52:07
 */

import { defineComponent, reactive, ref, onMounted } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { arraySerializeToStr } from '@/utils/arrayUtils'
import usePermission from '@/hooks/web/permission'
import { TenantConfigModel } from '@/api/system/model/tenantConfigModel'
import { apiTenantConfigLogicBatchDeleteByIds } from '@/api/system/tenantConfig'
import tenantConfigWxMp from './formWxMp.vue'
import tenantConfigWxCp from './formWxCp.vue'
import tenantConfigPayWx from './formPayWx.vue'
import tenantConfigPayAli from './formPayAli.vue'
import tenantConfigPayLakalaOrg from './formPayLakalaOrg.vue'
import tenantConfigPayLakala from './formPayLakala.vue'
import tenantConfigVisaSsq from './formVisaSsq.vue'
import tenantConfigZnsbYd from './formZnsbYd.vue'
import tenantConfigZnsbHz from './formZnsbHz.vue'

export default defineComponent({
  name: 'TenantConfig',
  components: {
    tenantConfigWxMp,
    tenantConfigWxCp,
    tenantConfigPayWx,
    tenantConfigPayAli,
    tenantConfigPayLakalaOrg,
    tenantConfigPayLakala,
    tenantConfigVisaSsq,
    tenantConfigZnsbYd,
    tenantConfigZnsbHz
  },
  setup(props) {
    //////////////////////////////////////////////////
    // 属性
    //////////////////////////////////////////////////

    const loading = ref(false)

    // 权限控制
    const { hasPermission } = usePermission()

    /**
     * 公共
     */
    const state = reactive({})

    //////////////////////////////////////////////////
    // 函数
    //////////////////////////////////////////////////

    /**
     * 批量删除
     */
    function handleDelete(row?: TenantConfigModel) {
      ElMessageBox.confirm(`此操作将删除条记录, 是否继续?`, '删除提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      })
        .then(() => {
          loading.value = true
          const ids = arraySerializeToStr([], 'id')
          apiTenantConfigLogicBatchDeleteByIds(ids)
            .then((result) => {
              if (result?.success) {
                ElMessage.success(result.message)
              } else {
                ElMessage.error(result?.message)
              }
            })
            .catch(() => {})
            .finally(() => {
              loading.value = false
            })
        })
        .catch(() => {
          ElMessage.info('删除被取消了')
        })
    }

    //////////////////////////////////////////////////
    // 微信公众号
    //////////////////////////////////////////////////
    const tenantConfigWxMpRef = ref()
    function handleOpenWxMp() {
      tenantConfigWxMpRef.value.handleOpen()
    }

    //////////////////////////////////////////////////
    // 微信企业号
    //////////////////////////////////////////////////
    const tenantConfigWxCpRef = ref()
    function handleOpenWxCp() {
      tenantConfigWxCpRef.value.handleOpen()
    }

    //////////////////////////////////////////////////
    // 支付 - 微信支付
    //////////////////////////////////////////////////
    const tenantConfigPayWxRef = ref()
    function handleOpenPayWx() {
      tenantConfigPayWxRef.value.handleOpen()
    }

    //////////////////////////////////////////////////
    // 支付 - 支付宝支付
    //////////////////////////////////////////////////
    const tenantConfigPayAliRef = ref()
    function handleOpenPayAli() {
      tenantConfigPayAliRef.value.handleOpen()
    }

    //////////////////////////////////////////////////
    // 支付 - 拉卡拉支付 - 机构
    //////////////////////////////////////////////////
    const tenantConfigPayLakalaOrgRef = ref()
    function handleOpenPayLakalaOrg() {
      tenantConfigPayLakalaOrgRef.value.handleOpen()
    }

    //////////////////////////////////////////////////
    // 支付 - 拉卡拉支付 - 商户
    //////////////////////////////////////////////////
    const tenantConfigPayLakalaRef = ref()
    function handleOpenPayLakala() {
      tenantConfigPayLakalaRef.value.handleOpen()
    }

    //////////////////////////////////////////////////
    // 电子签 - 上上签
    //////////////////////////////////////////////////
    const tenantConfigVisaSsqRef = ref()
    function handleOpenVisaSsq() {
      tenantConfigVisaSsqRef.value.handleOpen()
    }

    //////////////////////////////////////////////////
    // 智能设备 - 云丁
    //////////////////////////////////////////////////
    const tenantConfigZnsbYdRef = ref()
    function handleOpenZnsbYd() {
      tenantConfigZnsbYdRef.value.handleOpen()
    }

    //////////////////////////////////////////////////
    // 智能设备 - 慧泽
    //////////////////////////////////////////////////
    const tenantConfigZnsbHzRef = ref()
    function handleOpenZnsbHz() {
      tenantConfigZnsbHzRef.value.handleOpen()
    }

    //////////////////////////////////////////////////
    // 生命周期
    //////////////////////////////////////////////////
    onMounted(() => {})

    return {
      loading,
      state,
      handleDelete,
      tenantConfigWxMpRef,
      handleOpenWxMp,
      tenantConfigWxCpRef,
      handleOpenWxCp,
      tenantConfigPayWxRef,
      handleOpenPayWx,
      tenantConfigPayAliRef,
      handleOpenPayAli,
      tenantConfigPayLakalaOrgRef,
      handleOpenPayLakalaOrg,
      tenantConfigPayLakalaRef,
      handleOpenPayLakala,
      tenantConfigVisaSsqRef,
      handleOpenVisaSsq,
      tenantConfigZnsbYdRef,
      handleOpenZnsbYd,
      tenantConfigZnsbHzRef,
      handleOpenZnsbHz
    }
  }
})
